home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / asmpak4.lha / LIGHTSOURCED_NORMAL.S < prev    next >
Encoding:
Text File  |  1990-11-16  |  23.0 KB  |  1,297 lines

  1.  
  2. **    LIGHTSOURCED VECTOR
  3. **    CODED BY CRADON/MATRIX
  4. **    ASM-ONE FORMAT
  5.  
  6. *******************************************************************************
  7.  
  8.     SECTION    A,CODE_C
  9.  
  10. START    MOVEM.L    D0-A6,-(A7)
  11.     MOVE.W    $DFF01C,INTENA
  12.     MOVE.W    $DFF002,DMACON
  13.     MOVE.W    $DFF010,ADKCON
  14.     MOVE.W    #%0111111111111111,$DFF096
  15.     MOVE.W    #%0111111111111111,$DFF09A
  16.     MOVE.W    #%0111111111111111,$DFF09C
  17.     JSR    INITCOP
  18.     JSR    INITIRQ
  19.     MOVE.W    #%1000001111000000,$DFF096
  20.     MOVE.W     #%1100000000110000,$DFF09A
  21. LOOP    BTST    #6,$BFE001
  22.     BNE.B    LOOP
  23. ENDE    MOVE.W    #%0111111111111111,$DFF096
  24.     MOVE.W    #%0111111111111111,$DFF09A
  25.     MOVE.W    #%0111111111111111,$DFF09C
  26.     MOVE.L    OLDIRQ,$00006C
  27.     MOVE.W    DMACON,D0            
  28.     OR.W    #$8000,D0            
  29.     MOVE.W    D0,$DFF096
  30.     MOVE.W    ADKCON,D0            
  31.     OR.W    #$8000,D0
  32.     MOVE.W    D0,$DFF09E
  33.     MOVE.W    INTENA,D0            
  34.     OR.W    #$C000,D0
  35.     MOVE.W    D0,$DFF09A
  36.     MOVE.W    #0,$DFF088
  37.     MOVEM.L    (A7)+,D0-A6
  38.     RTS
  39.  
  40. ** THIRD LEVEL INTERRUPT ******************************************************
  41.  
  42. MYIRQ    MOVEM.L    D0-A6,-(A7)
  43.     JSR    CLEAR
  44.     JSR    VECTOR
  45.     JSR    FLIP_SCREEN
  46.     MOVE.W    #$20,$DFF09C
  47.     MOVEM.L    (A7)+,D0-A6         
  48.     RTE
  49.  
  50. ** FILLED VECTOR **************************************************************
  51.  
  52. VECTOR    JSR    ANGLES                ; CALCULATE NEW VIEW ANGLE
  53.     LEA.L    POINTS(PC),A1            ; POINT ON NEXT PLANE DATA
  54.     LEA.L    SIN_TABLE,A2            ; POINT AT SINUS TABLE
  55.     LEA.L    COS_TABLE,A3            ; POINT AT COSINUS TABLE
  56. OBLOOP    CMPI.W    #$FFFF,(A1)            ; NO MORE LINES IN THIS PLANE?
  57.     BEQ.W    VECOUT
  58.     MOVE.L    SCREEN_ADRESS,A0        ; LETS WORK ON THIS FRAME
  59.     MOVE.W    (A1)+,D0            ; X-NORMAL
  60.     MOVE.W    (A1)+,D1            ; Y-NORMAL
  61.     MOVE.W    (A1)+,D2            ; Z-NORMAL
  62.     JSR    NORMAL                ; ROTATE PLANE'S VECTOR-NORMAL.
  63.     MOVE.W    (A1)+,D3            ; GET Z-COORD LIMIT
  64.     CMP.W    D3,D2                ; FRONT- OR BACKSIDE OF PLANE?
  65.     BGT.B    PLANE                ; IF FRONT, THEN DRAW PLANE
  66.     MOVE.W    (A1)+,D0
  67.     MOVE.W    (A1)+,D0
  68.     LSL.W    #3,D0                ; *4 *2 = DELTA-ADRESS IN BYTES
  69.     EXT.L    D0
  70.     ADD.L    D0,A1                ; POINT PÅ NY PLAN
  71.     BRA.B    OBLOOP
  72. PLANE    MOVE.W    (A1)+,D0            ; SELECTED COLOUR (BITPLAN)
  73.     MOVE.W    #10240,D1
  74.     MULU    D0,D1
  75.     ADD.L    D1,A0
  76.     JSR    LIGHT                ; LIGHTSOURCE THIS COMING PLANE
  77.     MOVE.W    (A1)+,COUNTER            ; ANTAL LINIER I PLAN
  78. LINIER    MOVE.W    (A1)+,D0            ; GET LINE COORDINATES
  79.     MOVE.W    (A1)+,D1
  80.     MOVE.W    (A1)+,D2
  81.     SUB.W    XCENTER,D0            ; OBJECT WITH CENTER IN ORIGO
  82.     SUB.W    YCENTER,D1
  83.     SUB.W    ZCENTER,D2
  84.     BSR.B    ROTATE                ; ROTATE 3D POINT
  85.     ADD.W    ZCENTER,D2
  86.     JSR    CONVERT                ; CONVERT FROM 3D TO 2D
  87.     ADD.W    XCENTER,D0
  88.     ADD.W    YCENTER,D1
  89.     JSR    EXTREM                ; NOTE PLANE MAX AND MIN
  90.     JSR    LINE                ; DRAW LINE FROM LAST POINT
  91.     SUB.W    #1,COUNTER
  92.     TST.W    COUNTER                ; PLANE FINISHED?
  93.     BNE.B    LINIER                ; IF NOT: WORK ON NEXT LINE
  94.     JSR    FILL                ; FILL PLANE
  95.     JSR    GLOBAL                ; NOTE GLOBAL EXTREMES (CLEAR)
  96.     MOVE.W    #256,YMIN            ; RESET FOR NEXT PLANE
  97.     MOVE.W    #0,YMAX
  98.     MOVE.W    #320,XMIN
  99.     MOVE.W    #0,XMAX
  100.     BRA.W    OBLOOP
  101. VECOUT    RTS    
  102.  
  103. ** ROTATE 3D POINT ************************************************************
  104.  
  105. ROTATE    MOVE.W    XVINKEL,D5            ; X ANGLE
  106.     MOVE.W    YVINKEL,D6            ; Y ANGLE
  107.     MOVE.W    ZVINKEL,D7            ; Z ANGLE
  108.     LSL.W    #1,D5                ; X ANGLE *2
  109.     LSL.W    #1,D6                ; Y ANGLE *2
  110.     LSL.W    #1,D7                ; Z ANGLE *2
  111.     MOVE.W    (A3,D5.W),D3            ; COS(XGRAD)
  112.     MOVE.W    (A2,D5.W),D4            ; SIN(XGRAD)
  113.     MULS    D1,D3                ; Y*COS(XGRAD)
  114.     MULS    D2,D4                ; Z*SIN(XGRAD)
  115.     SUB.L    D4,D3                ; Y*COS(XGRAD) - Z*SIN(XGRAD)
  116.     LSL.L    #2,D3                ; 4*(Y*COS(XGRAD)-Z*SIN(XGRAD))
  117.     MOVE.L    D3,Y1                ; Y-COORDINATE AROUND X AXIS
  118.     MOVE.W    (A2,D5.W),D3            ; SIN(XGRAD)
  119.     MOVE.W    (A3,D5.W),D4            ; COS(XGRAD)
  120.     MULS    D1,D3                ; Y*SIN(XGRAD)
  121.     MULS    D2,D4                ; Z*COS(XGRAD)
  122.     ADD.L    D4,D3                ; Y*SIN(XGRAD) + Z*COS(XGRAD)
  123.     LSL.L    #2,D3                ; 4*(Y*SIN(XGRAD)+Z*COS(XGRAD))
  124.     MOVE.L    D3,Z1                ; Z-COORDINATE AROUND X AXIS
  125.     MOVE.W    (A3,D6.W),D3            ; COS(YGRAD)
  126.     MOVE.W    (A2,D6.W),D4            ; SIN(YGRAD)
  127.     MULS    D0,D3                ; X*COS(YGRAD)
  128.     MULS    Z1,D4                ; Z*SIN(YGRAD)
  129.     SUB.L    D4,D3                ; X*COS(YGRAD) - Z*SIN(YGRAD)
  130.     LSL.L    #2,D3                ; 4*(X*COS(YGRAD)-Z*SIN(YGRAD))
  131.     MOVE.L    D3,X2                ; X-COORDINATE AROUND Y AXIS
  132.     MOVE.W    (A2,D6.W),D2            ; SIN(YGRAD)
  133.     MOVE.W    (A3,D6.W),D4            ; COS(YGRAD)
  134.     MULS    D0,D2                ; X*SIN(YGRAD)
  135.     MULS    Z1,D4                ; Z*COS(YGRAD)
  136.     ADD.L    D4,D2                ; X*SIN(YGRAD) + Z*COS(YGRAD)
  137.     LSL.L    #2,D2                ; 4*(X*SIN(YGRAD)+Z*COS(YGRAD))
  138.     SWAP    D2                ; FAST DIVISION BY 65535
  139.     EXT.L    D2                ; Z-COORDINATE AROUND Y AND X
  140.     MOVE.W    (A3,D7.W),D0            ; COS(ZGRAD)
  141.     MOVE.W    (A2,D7.W),D4            ; SIN(ZGRAD)
  142.     MULS    X2,D0                ; X*COS(ZGRAD)
  143.     MULS    Y1,D4                ; Y*SIN(ZGRAD)
  144.     SUB.L    D4,D0                ; X*COS(ZGRAD) - Y*SIN(ZGRAD)
  145.     LSL.L    #2,D0                ; 4*(X*COS(ZGRAD)-Y*SIN(ZGRAD))
  146.     SWAP    D0                ; FAST DIVISION BY 65535
  147.     EXT.L    D0                ; X-COORDINATE AROUND Y AND Z
  148.     MOVE.W    (A2,D7.W),D1            ; SIN(ZGRAD)
  149.     MOVE.W    (A3,D7.W),D3            ; COS(ZGRAD)
  150.     MULS    X2,D1                ; X*SIN(ZGRAD)
  151.     MULS    Y1,D3                ; Y*COS(ZGRAD)
  152.     ADD.L    D3,D1                ; X*SIN(ZGRAD) + Y*COS(ZGRAD)
  153.     LSL.L    #2,D1                ; 4*(X*SIN(ZGRAD)+Y*COS(ZGRAD))
  154.     SWAP    D1                ; FAST DIVISION BY 65535
  155.     EXT.L    D1                ; Y-COORDINATE AROUND X AND Z
  156.     RTS
  157.  
  158. ** ROTATE PLANES VECTOR NORMAL ************************************************
  159.  
  160. NORMAL    MOVE.W    XVINKEL,D5
  161.     MOVE.W    YVINKEL,D6
  162.     LSL.W    #1,D5
  163.     LSL.W    #1,D6
  164.     MOVE.W    (A2,D5.W),D3
  165.     MOVE.W    (A3,D5.W),D4
  166.     MULS    D1,D3
  167.     MULS    D2,D4
  168.     ADD.L    D4,D3
  169.     LSL.L    #2,D3
  170.     MOVE.L    D3,Z1
  171.     MOVE.W    (A2,D6.W),D2
  172.     MOVE.W    (A3,D6.W),D4
  173.     MULS    D0,D2
  174.     MULS    Z1,D4
  175.     ADD.L    D4,D2
  176.     LSL.L    #2,D2
  177.     SWAP    D2
  178.     EXT.L    D2
  179.     RTS
  180.  
  181. ** CONVERT POINT FROM 3D TO 2D ************************************************
  182.  
  183. CONVERT    MULS    ZOOM,D0
  184.     MULS    ZOOM,D1
  185.     DIVS    D2,D0
  186.     DIVS    D2,D1
  187.     RTS
  188.  
  189. ** DRAW LINE ******************************************************************
  190.  
  191. LINE    EXT.L    D0                ; RULE OUT ANY CRAP!
  192.     EXT.L    D1
  193.     TST.W    (A1)+                ; DRAW LINE FROM LAST POINT?
  194.     BNE.B    DRAW
  195.     MOVE.W    D0,LASTX            ; NO! THEN JUST SAVE THIS POINT
  196.     MOVE.W    D1,LASTY
  197.     RTS
  198. DRAW    MOVE.W    LASTX,D2
  199.     MOVE.W    LASTY,D3
  200.     MOVE.W    D0,LASTX
  201.     MOVE.W    D1,LASTY
  202.     EXG    D1,D2    
  203.     CMP    D2,D3
  204.     BEQ.W    DRAWOUT
  205.     BPL.B    BLINE
  206.     EXG    D0,D1
  207.     EXG    D2,D3
  208. BLINE    SUBQ    #1,D3
  209.     MOVE    D1,D6
  210.     SUB    D0,D6
  211.     BMI.S    XL0
  212.     MOVE.W    D3,D7
  213.     SUB.W    D2,D7
  214.     BMI.S    XG0YL0
  215.     MOVE.W    D7,D5
  216.     SUB.W    D6,D5
  217.     BMI.S    O4
  218.     MOVE.B    #1,BLTC1
  219.     BRA.S    OCTOK
  220. O4    MOVE.B    #17,BLTC1
  221.     BRA.S    OCTOK
  222. XG0YL0    NEG.W    D7
  223.     MOVE.W    D7,D5
  224.     SUB.W    D6,D5
  225.     BMI.S    O6
  226.     MOVE.B    #5,BLTC1
  227.     BRA.S    OCTOK
  228. O6    MOVE.B    #25,BLTC1
  229.     BRA.S    OCTOK
  230. XL0    NEG.W    D6
  231.     MOVE.W    D3,D7
  232.     SUB.W    D2,D7
  233.     BMI.S    XL0YL0
  234.     MOVE.W    D7,D5
  235.     SUB.W    D6,D5
  236.     BMI.S    O5
  237.     MOVE.B    #9,BLTC1
  238.     BRA.S    OCTOK
  239. O5    MOVE.B    #21,BLTC1
  240.     BRA.S    OCTOK
  241. XL0YL0    NEG.W    D7
  242.     MOVE.W    D7,D5
  243.     SUB.W    D6,D5
  244.     BMI.S    O7
  245.     MOVE.B    #13,BLTC1
  246.     BRA.S    OCTOK
  247. O7    MOVE.B    #29,BLTC1
  248. OCTOK    MOVEQ    #0,D4
  249.     MOVE.W    D0,D4
  250.     AND.W    #15,D4
  251.     SWAP    D4
  252.     LSR.L    #4,D4
  253.     OR.W    #$B4A,D4
  254.     MOVEQ    #0,D3
  255.     LSL    #3,D2
  256.     MOVE    D2,D3
  257.     LSL    #2,D2
  258.     ADD    D2,D3
  259.     LSR    #3,D0
  260.     AND.B    #$FE,D0
  261.     ADD    D0,D3
  262.     ADD.L    A0,D3
  263.     TST    D5
  264.     BMI.S    XMAXI
  265.     EXG    D6,D7
  266.     NEG.W    D5
  267. XMAXI    MOVE.W    D6,D1
  268.     ADD.W    #1,D1
  269.     LSL.W    #6,D1
  270.     ADD.W    #2,D1
  271.     MOVE.W    D5,D0
  272.     ADD.W    D7,D0
  273.     LSL.W    #2,D7
  274.     MOVE.W    D0,D2
  275.     SUB.W    D6,D2
  276.     ADD.W    D2,D2
  277.     TST.W    D0
  278.     BPL.S    PLUS
  279.     OR.B    #64,BLTC1
  280. PLUS    ADD.W    D0,D0
  281.     EXT.L    D0
  282. WDRAW    BTST    #6,$DFF002
  283.     BNE.S    WDRAW
  284.     CLR    D6
  285.     MOVE.B    BLTC1,D6
  286.     OR.W    #2,D6
  287.     MOVE.W    D6,$DFF042
  288.     MOVE.W    D4,$DFF040
  289.     CLR    $DFF070
  290.     MOVE.W    #$8000,$DFF074
  291.     MOVE.W    #$FFFF,$DFF072
  292.     MOVE.L    #$FFFFFFFF,$DFF044
  293.     MOVE.W    #40,$DFF060
  294.     MOVE.W    #40,$DFF066
  295.     MOVE.W    D7,$DFF062
  296.     MOVE.W    D2,$DFF064
  297.     MOVE.L    D3,$DFF048
  298.     MOVE.L    D3,$DFF054
  299.     MOVE.L    D0,$DFF050
  300.     MOVE.W    D1,$DFF058
  301. DRAWOUT    RTS
  302.  
  303. ** NOTE MIN AND MAX FOR THIS PLANE ********************************************
  304.  
  305. EXTREM    CMP.W    YMIN,D1
  306.     BHI    NOYMIN
  307.     MOVE.W    D1,YMIN
  308. NOYMIN    CMP.W    YMAX,D1
  309.     BLT    NOYMAX
  310.     MOVE.W    D1,YMAX
  311. NOYMAX    CMP.W    XMIN,D0
  312.     BHI    NOXMIN
  313.     MOVE.W    D0,XMIN
  314. NOXMIN    CMP.W    XMAX,D0
  315.     BLT    NOXMAX
  316.     MOVE.W    D0,XMAX
  317. NOXMAX    RTS
  318.  
  319. ** NOTE MIN AND MAX FOR ALL PLANES ********************************************
  320.  
  321. GLOBAL    MOVE.W    XMIN,D0
  322.     CMP.W    GLOBALXMIN,D0
  323.     BHI    NOGLOBX
  324.     MOVE.W    D0,GLOBALXMIN
  325. NOGLOBX    MOVE.W    XMAX,D0
  326.     CMP.W    GLOBALXMAX,D0
  327.     BLT    GLOBOY1
  328.     MOVE.W    D0,GLOBALXMAX
  329. GLOBOY1    MOVE.W    YMIN,D0
  330.     CMP.W    GLOBALYMIN,D0
  331.     BHI    NOGLOBY
  332.     MOVE.W    D0,GLOBALYMIN
  333. NOGLOBY    MOVE.W    YMAX,D0
  334.     CMP.W    GLOBALYMAX,D0
  335.     BLT    GLOBOUT
  336.     MOVE.W    D0,GLOBALYMAX
  337. GLOBOUT    RTS    
  338.  
  339. ** CLACULATE NEW VIEW ANGLE ***************************************************
  340.  
  341. ANGLES    MOVE.W    YDELTA,D0
  342.     ADD.W    D0,YVINKEL            ; NEW Y ANGLE
  343.     CMP.W    #512,YVINKEL
  344.     BLT.B    XANGLE
  345.     SUB.W    #512,YVINKEL
  346. XANGLE    MOVE.W    XDELTA,D0
  347.     ADD.W    D0,XVINKEL            ; NEW X ANGLE
  348.     CMP.W    #512,XVINKEL
  349.     BLT.B    ZANGLE
  350.     SUB.W    #512,XVINKEL
  351. ZANGLE    MOVE.W    ZDELTA,D0
  352.     ADD.W    D0,ZVINKEL            ; NEW Z ANGLE
  353.     CMP.W    #512,ZVINKEL
  354.     BLT.B    ANGLOUT    
  355.     SUB.W    #512,ZVINKEL
  356. ANGLOUT    RTS
  357.  
  358. ** LIGHTSOURCE CURRENT PLANE **************************************************
  359.  
  360. LIGHT    LSL.W    #1,D0                ; D0 = OFFSET IN OFFSET-TABLE!
  361.     LEA.L    COLOUR,A4
  362.     LEA.L    OFFSET(PC),A5
  363.     LEA.L    COLOURS(PC),A6
  364.     MOVE.W    (A5,D0.W),D1            ; D1 = OFFSET FROM COLOUR LABEL
  365.     DIVU    #7,D2                ; ADJUST TO COLOURSTABLE OFFSET
  366.     LSL.W    #1,D2
  367.     MOVE.W    (A6,D2.W),D0
  368.     MOVE.W    D0,(A4,D1.W)
  369.     RTS
  370.  
  371. ** FLIP BETWEEN FRAMESBUFFERS *************************************************
  372.  
  373. FLIP_SCREEN
  374.     CMP.L     #SCREEN1,SCREEN_ADRESS        
  375.     BEQ.S    FLIP_TO_SCREEN2
  376.     LEA.L    PLANES,A0
  377.     MOVE.L    #SCREEN2,D0
  378.     MOVE.W    D0,6(A0)
  379.     SWAP     D0
  380.     MOVE.W    D0,2(A0)
  381.     MOVE.L    #SCREEN2+[256*40],D0
  382.     MOVE.W    D0,14(A0)
  383.     SWAP     D0
  384.     MOVE.W    D0,10(A0)
  385.     MOVE.L    #SCREEN2+[512*40],D0
  386.     MOVE.W    D0,22(A0)
  387.     SWAP     D0
  388.     MOVE.W    D0,18(A0)
  389.     MOVE.L    #SCREEN1,SCREEN_ADRESS    
  390.     RTS
  391. FLIP_TO_SCREEN2
  392.     LEA.L    PLANES,A0
  393.     MOVE.L    #SCREEN1,D0
  394.     MOVE.W    D0,6(A0)
  395.     SWAP     D0
  396.     MOVE.W    D0,2(A0)
  397.     MOVE.L    #SCREEN1+[256*40],D0
  398.     MOVE.W    D0,14(A0)
  399.     SWAP     D0
  400.     MOVE.W    D0,10(A0)
  401.     MOVE.L    #SCREEN1+[512*40],D0
  402.     MOVE.W    D0,22(A0)
  403.     SWAP     D0
  404.     MOVE.W    D0,18(A0)
  405.     MOVE.L    #SCREEN2,SCREEN_ADRESS
  406.     RTS
  407.  
  408. ** CLEAR SCREEN ***************************************************************
  409.  
  410. CLEAR    MOVEQ    #0,D1
  411.     MOVEQ    #0,D2
  412.     MOVEQ    #0,D3
  413.     MOVE.L    SCREEN_ADRESS,D0
  414.     MOVE.W    GLOBALXMIN,D1    
  415.     MOVE.W    GLOBALXMAX,D2
  416.     SUB.W    D1,D2                ; D2 = CLEAR WIDTH IN PIXELS
  417.     DIVU    #8,D1                ; D1 = LEFT PIXELS IN BYTES
  418.     EXT.L    D1
  419.     SUB.W    #1,D1
  420.     ADD.L    D1,D0                ; D0 = START ADDRESS
  421.     DIVU    #16,D2                ; D2 = CLEAR WIDTH IN WORDS
  422.     ADD.W    #3,D2                ; FOR SAFETY    
  423.     MOVE.W    D2,D1
  424.     MULU    #2,D1                ; D1 = CLEAR WIDTH IN BYTES
  425.     MOVE.W    #40,D3
  426.     SUB.W    D1,D3                ; D3 = CLEAR MODULO
  427.     MOVE.W    GLOBALYMIN,D4
  428.     SUB.W    SAFETY,D4
  429.     MOVE.W    GLOBALYMAX,D5
  430.     SUB.W    D4,D5                ; HIGHT
  431.     ADD.W    SAFETY,D5
  432.     MULU    #40,D4
  433.     EXT.L    D4
  434.     ADD.L    D4,D0
  435.     LSL.W    #6,D5
  436.     OR.W    D5,D2                ; HIGHT AND WIDTH
  437. WAIT1    BTST    #14,$DFF002
  438.     BNE.S    WAIT1
  439.     MOVE.W    #$0100,$DFF040
  440.     MOVE.W    #$0000,$DFF042
  441.     MOVE.L    #$FFFFFFFF,$DFF044
  442.     MOVE.L    D0,$DFF054
  443.     MOVE.W    D3,$DFF066
  444.     MOVE.W    D2,$DFF058
  445.     ADD.L    #10240,D0            ; POINT ON NEXT PLANE
  446. WAIT2    BTST    #14,$DFF002
  447.     BNE.S    WAIT2
  448.     MOVE.W    #$0100,$DFF040
  449.     MOVE.W    #$0000,$DFF042
  450.     MOVE.L    D0,$DFF054
  451.     MOVE.W    D3,$DFF066
  452.     MOVE.W    D2,$DFF058
  453.     ADD.L    #10240,D0            ; POINT ON NEXT PLANE
  454. WAIT3    BTST    #14,$DFF002
  455.     BNE.S    WAIT3
  456.     MOVE.W    #$0100,$DFF040
  457.     MOVE.W    #$0000,$DFF042
  458.     MOVE.L    D0,$DFF054
  459.     MOVE.W    D3,$DFF066
  460.     MOVE.W    D2,$DFF058
  461.     MOVE.W    #320,GLOBALXMIN            ; RESET GLOBALS
  462.     MOVE.W    #0,GLOBALXMAX
  463.     MOVE.W    #256,GLOBALYMIN
  464.     MOVE.W    #0,GLOBALYMAX
  465.     RTS
  466.  
  467. ** BLITTER FILL (DESCENDING MODE) *********************************************
  468.  
  469. FILL    MOVE.L    A0,D0                ; SCREEN ADDRESS
  470.     MOVEQ    #0,D1
  471.     MOVEQ    #0,D2
  472.     MOVEQ    #0,D3
  473.     MOVE.W    YMAX,D1
  474.     MULU    #40,D1    
  475.     ADD.L    D1,D0                ; D0 = BUTTOM VERTICAL LINE
  476.     MOVE.W    #320,D2
  477.     SUB.W    XMAX,D2
  478.     LSR.W    #3,D2                ; 16 PIXEL PRECISION
  479.     EXT.L    D2
  480.     SUB.L    D2,D0                ; D0 = START ADDRESS 
  481.     MOVE.W    XMAX,D1
  482.     SUB.W    XMIN,D1                ; D1 = FILL WIDTH IN PIXELS
  483.     LSR.W    #4,D1                ; D1 = FILL WIDTH IN WORDS
  484.     ADDQ.W    #3,D1
  485.     MOVE.W    D1,D2
  486.     MOVE.W    #40,D3                ; FULL SCREEN MODULO
  487.     LSL.W    #1,D2                ; D2 = FILL WIDTH IN BYTES
  488.     SUB.W    D2,D3                ; D3 = FILL MODULO
  489.     MOVE.W    YMAX,D2
  490.     SUB.W    YMIN,D2                ; D2 = HIGHT IN PIXELS
  491.     LSL.W    #6,D2                ; PLACE HIGHT ON RIGHT BITS
  492.     OR.W    D2,D1                ; D1 = FILL HIGHT AND WIDTH
  493. FREADY    BTST    #14,$DFF002
  494.     BNE.B    FREADY
  495.     MOVE.L    D0,$DFF050
  496.     MOVE.L    D0,$DFF054
  497.     MOVE.W    #$09F0,$DFF040            ; MINTERM D=A
  498.     MOVE.W    #%0000000000010010,$DFF042    ; EXCLUSIVE FILL (BIT 4)
  499.     MOVE.L    #$FFFFFFFF,$DFF044        ; MASKS
  500.     MOVE.W    D3,$DFF064            ; A MODULO
  501.     MOVE.W    D3,$DFF066            ; D MODULO
  502.     MOVE.W    D1,$DFF058            ; FILL HIGHT AND START ADDRESS
  503.     RTS
  504.     
  505. ** SET COPPER FOR SELFACTIVATION **********************************************
  506.  
  507. INITCOP    LEA     PLANES,A0
  508.     MOVE.L  #SCREEN2,D0
  509.     MOVE.W  D0,6(A0)
  510.     SWAP    D0
  511.     MOVE.W  D0,2(A0)
  512.     SWAP    D0
  513.     MOVE.L    #COPPER,D0
  514.     LEA.L    ADRESS,A0
  515.     MOVE.W    D0,6(A0)
  516.     SWAP    D0
  517.     MOVE.W    D0,2(A0)
  518.     MOVE.L    #COPPER,$DFF084
  519.     MOVE.B    #$00,$DFF08A
  520.     RTS
  521. INITIRQ    MOVE.L     $6C,OLDIRQ
  522.     MOVE.L     #MYIRQ,$6C
  523.     RTS
  524.     
  525. ** DATA ***********************************************************************
  526.     
  527. OLDIRQ        DC.L    0
  528. INTENA        DC.W    0
  529. DMACON        DC.W    0
  530. ADKCON        DC.W    0
  531. SCREEN_ADRESS    DC.L    SCREEN1
  532. XCENTER        DC.W    159
  533. YCENTER        DC.W    128
  534. ZCENTER        DC.W    460
  535. ZOOM        DC.W    210
  536. SAFETY        DC.W    6    ; HIGH SAFETY TAKES MORE RASTER
  537. COUNTER        DC.W    0
  538. XVINKEL        DC.W    0
  539. YVINKEL        DC.W    0
  540. ZVINKEL        DC.W    0
  541. YDELTA        DC.W    2
  542. XDELTA        DC.W    3
  543. ZDELTA        DC.W    1
  544. Y1        DC.L    0
  545. Z1        DC.L    0
  546. X2        DC.L    0
  547. LASTX        DC.W    0
  548. LASTY        DC.W    0
  549. YMIN        DC.W    256
  550. YMAX        DC.W    0
  551. XMIN        DC.W    320
  552. XMAX        DC.W    0
  553. GLOBALYMIN    DC.W    120
  554. GLOBALYMAX    DC.W    140
  555. GLOBALXMIN    DC.W    150
  556. GLOBALXMAX    DC.W    170
  557. OFFSET        DC.W    2,6,10,2,2,2,2,2
  558. COLOURS        DC.W    $000,$002,$013,$024,$035,$046,$057,$068
  559.         DC.W    $079,$08A,$09B,$0AC,$0BD,$0CE,$0DF,$FFF
  560. BLTC1        DC.B    0
  561.         EVEN
  562.  
  563. ** OBJECT DATA ****************************************************************
  564. **
  565. ** STRUCTURE:    DC.W    XN,YN,ZX,LIMIT,BITPLAN,COUNT
  566. **        DC.W    X,Y,Z,S
  567. **
  568. ** (XN,YN,ZN):    PLANE NORMAL-VECTOR (MUST STAND IN AN 90° ANGLE ON PLANE).
  569. ** LIMIT:    ZN LIMIT (TO DETERMINE WHEN WE ARE SEEING FRONT OR BACKSIDE).
  570. ** BITPLAN:    SELECT COLOUR FOR THIS PLANE 0,1,2.
  571. ** COUNT:    NUMBER OF POINTS THAT THIS PLANE CONSISTS OF.
  572. ** (X,Y,Z):    POINT COORDINATES.
  573. ** S:        0:MOVE TO THIS POINT. 1:DRAW LINE FROM THIS POINT TO LAST ONE.
  574. **
  575.  
  576. POINTS    DC.W    0,0,100,27,0,5
  577.     DC.W    29,-2,330,0
  578.     DC.W    29,258,330,1
  579.     DC.W    289,258,330,1
  580.     DC.W    289,-2,330,1
  581.     DC.W    29,-2,330,1
  582.     DC.W    100,0,0,27,1,5    
  583.     DC.W    29,-2,590,0
  584.     DC.W    29,258,590,1
  585.     DC.W    29,258,330,1
  586.     DC.W    29,-2,330,1
  587.     DC.W    29,-2,590,1
  588.     DC.W    -100,0,0,27,1,5    
  589.     DC.W    289,-2,590,0
  590.     DC.W    289,258,590,1
  591.     DC.W    289,258,330,1
  592.     DC.W    289,-2,330,1
  593.     DC.W    289,-2,590,1
  594.     DC.W    0,0,-100,27,0,5
  595.     DC.W    29,-2,590,0
  596.     DC.W    29,258,590,1
  597.     DC.W    289,258,590,1
  598.     DC.W    289,-2,590,1
  599.     DC.W    29,-2,590,1
  600.     DC.W    0,-100,0,27,2,5
  601.     DC.W    29,258,330,0
  602.     DC.W    29,258,590,1
  603.     DC.W    289,258,590,1
  604.     DC.W    289,258,330,1
  605.     DC.W    29,258,330,1
  606.     DC.W    0,100,0,27,2,5
  607.     DC.W    29,-2,330,0
  608.     DC.W    29,-2,590,1
  609.     DC.W    289,-2,590,1
  610.     DC.W    289,-2,330,1
  611.     DC.W    29,-2,330,1
  612.  
  613.     DC.W    $FFFF,$FFFF    ; SIGNAL: NO MORE PLANES TO DRAW!
  614.     
  615.     SECTION    B,DATA_C
  616.  
  617. ** COPPERLIST *****************************************************************
  618.  
  619. COPPER    DC.W    $0106,$0000,$01FC,$0000
  620.     DC.W    $008E,$2C81,$0090,$2CC1
  621.     DC.W    $0092,$0038,$0094,$00D0
  622.     DC.W    $0102,$0000,$0104,$0000
  623.     DC.W    $0108,$0000,$010A,$0000
  624.  
  625. COLOUR    DC.W    $0182,$0400    ; 2
  626.     DC.W    $0184,$0600    ; 6
  627.     DC.W    $0188,$0800    ; 10
  628.  
  629.     DC.W    $0186,$0999,$018A,$00F0
  630.     DC.W    $018C,$00F0,$018E,$0813
  631.  
  632. PLANES    DC.W    $00E0,$0000,$00E2,$0000
  633.     DC.W    $00E4,$0000,$00E6,$0000
  634.     DC.W    $00E8,$0000,$00EA,$0000
  635.     DC.W    $3001,$FF00,$0100,$3200
  636.     DC.W    $FFE1,$FFFE,$2901,$FF00
  637.     DC.W    $0100,$0200
  638.  
  639. ADRESS    DC.W    $0084,$0000
  640.     DC.W    $0086,$0000
  641.     DC.W    $008A,$0000    ; RESTART COPPERLIST
  642.     DC.W    $FFFF,$FFFE
  643.  
  644. ** SCREEN *********************************************************************
  645.  
  646. SCREEN1    BLK.B    [320/8*768],$00
  647. SCREEN2    BLK.B    [320/8*768],$00
  648.  
  649. SIN_TABLE
  650.     DC.W     0 
  651.     DC.W     201 
  652.     DC.W     402 
  653.     DC.W     603 
  654.     DC.W     803 
  655.     DC.W     1004 
  656.     DC.W     1205 
  657.     DC.W     1405 
  658.     DC.W     1605 
  659.     DC.W     1805 
  660.     DC.W     2005 
  661.     DC.W     2204 
  662.     DC.W     2404 
  663.     DC.W     2602 
  664.     DC.W     2801 
  665.     DC.W     2998 
  666.     DC.W     3196 
  667.     DC.W     3393 
  668.     DC.W     3589 
  669.     DC.W     3785 
  670.     DC.W     3980 
  671.     DC.W     4175 
  672.     DC.W     4369 
  673.     DC.W     4563 
  674.     DC.W     4756 
  675.     DC.W     4948 
  676.     DC.W     5139 
  677.     DC.W     5329 
  678.     DC.W     5519 
  679.     DC.W     5708 
  680.     DC.W     5896 
  681.     DC.W     6083 
  682.     DC.W     6269 
  683.     DC.W     6455 
  684.     DC.W     6639 
  685.     DC.W     6822 
  686.     DC.W     7005 
  687.     DC.W     7186 
  688.     DC.W     7366 
  689.     DC.W     7545 
  690.     DC.W     7723 
  691.     DC.W     7900 
  692.     DC.W     8075 
  693.     DC.W     8249 
  694.     DC.W     8423 
  695.     DC.W     8594 
  696.     DC.W     8765 
  697.     DC.W     8934 
  698.     DC.W     9102 
  699.     DC.W     9268 
  700.     DC.W     9434 
  701.     DC.W     9597 
  702.     DC.W     9759 
  703.     DC.W     9920 
  704.     DC.W     10079 
  705.     DC.W     10237 
  706.     DC.W     10393 
  707.     DC.W     10548 
  708.     DC.W     10701 
  709.     DC.W     10853 
  710.     DC.W     11002 
  711.     DC.W     11150 
  712.     DC.W     11297 
  713.     DC.W     11442 
  714.     DC.W     11585 
  715.     DC.W     11726 
  716.     DC.W     11866 
  717.     DC.W     12003 
  718.     DC.W     12139 
  719.     DC.W     12273 
  720.     DC.W     12406 
  721.     DC.W     12536 
  722.     DC.W     12665 
  723.     DC.W     12791 
  724.     DC.W     12916 
  725.     DC.W     13038 
  726.     DC.W     13159 
  727.     DC.W     13278 
  728.     DC.W     13395 
  729.     DC.W     13510 
  730.     DC.W     13622 
  731.     DC.W     13733 
  732.     DC.W     13842 
  733.     DC.W     13948 
  734.     DC.W     14053 
  735.     DC.W     14155 
  736.     DC.W     14255 
  737.     DC.W     14353 
  738.     DC.W     14449 
  739.     DC.W     14543 
  740.     DC.W     14634 
  741.     DC.W     14723 
  742.     DC.W     14810 
  743.     DC.W     14895 
  744.     DC.W     14978 
  745.     DC.W     15058 
  746.     DC.W     15136 
  747.     DC.W     15212 
  748.     DC.W     15286 
  749.     DC.W     15357 
  750.     DC.W     15426 
  751.     DC.W     15492 
  752.     DC.W     15557 
  753.     DC.W     15618 
  754.     DC.W     15678 
  755.     DC.W     15735 
  756.     DC.W     15790 
  757.     DC.W     15842 
  758.     DC.W     15892 
  759.     DC.W     15940 
  760.     DC.W     15985 
  761.     DC.W     16028 
  762.     DC.W     16069 
  763.     DC.W     16107 
  764.     DC.W     16142 
  765.     DC.W     16175 
  766.     DC.W     16206 
  767.     DC.W     16234 
  768.     DC.W     16260 
  769.     DC.W     16284 
  770.     DC.W     16305 
  771.     DC.W     16323 
  772.     DC.W     16339 
  773.     DC.W     16353 
  774.     DC.W     16364 
  775.     DC.W     16372 
  776.     DC.W     16379 
  777. COS_TABLE
  778.     DC.W     16382 
  779.     DC.W     16384 
  780.     DC.W     16382 
  781.     DC.W     16379 
  782.     DC.W     16372 
  783.     DC.W     16364 
  784.     DC.W     16353 
  785.     DC.W     16339 
  786.     DC.W     16323 
  787.     DC.W     16305 
  788.     DC.W     16284 
  789.     DC.W     16260 
  790.     DC.W     16234 
  791.     DC.W     16206 
  792.     DC.W     16175 
  793.     DC.W     16142 
  794.     DC.W     16107 
  795.     DC.W     16069 
  796.     DC.W     16028 
  797.     DC.W     15985 
  798.     DC.W     15940 
  799.     DC.W     15892 
  800.     DC.W     15842 
  801.     DC.W     15790 
  802.     DC.W     15735 
  803.     DC.W     15678 
  804.     DC.W     15618 
  805.     DC.W     15557 
  806.     DC.W     15492 
  807.     DC.W     15426 
  808.     DC.W     15357 
  809.     DC.W     15286 
  810.     DC.W     15212 
  811.     DC.W     15136 
  812.     DC.W     15058 
  813.     DC.W     14978 
  814.     DC.W     14895 
  815.     DC.W     14810 
  816.     DC.W     14723 
  817.     DC.W     14634 
  818.     DC.W     14543 
  819.     DC.W     14449 
  820.     DC.W     14353 
  821.     DC.W     14255 
  822.     DC.W     14155 
  823.     DC.W     14053 
  824.     DC.W     13948 
  825.     DC.W     13842 
  826.     DC.W     13733 
  827.     DC.W     13622 
  828.     DC.W     13510 
  829.     DC.W     13395 
  830.     DC.W     13278 
  831.     DC.W     13159 
  832.     DC.W     13038 
  833.     DC.W     12916 
  834.     DC.W     12791 
  835.     DC.W     12665 
  836.     DC.W     12536 
  837.     DC.W     12406 
  838.     DC.W     12273 
  839.     DC.W     12139 
  840.     DC.W     12003 
  841.     DC.W     11866 
  842.     DC.W     11726 
  843.     DC.W     11585 
  844.     DC.W     11442 
  845.     DC.W     11297 
  846.     DC.W     11150 
  847.     DC.W     11002 
  848.     DC.W     10853 
  849.     DC.W     10701 
  850.     DC.W     10548 
  851.     DC.W     10393 
  852.     DC.W     10237 
  853.     DC.W     10079 
  854.     DC.W     9920 
  855.     DC.W     9759 
  856.     DC.W     9597 
  857.     DC.W     9434 
  858.     DC.W     9268 
  859.     DC.W     9102 
  860.     DC.W     8934 
  861.     DC.W     8765 
  862.     DC.W     8594 
  863.     DC.W     8423 
  864.     DC.W     8249 
  865.     DC.W     8075 
  866.     DC.W     7900 
  867.     DC.W     7723 
  868.     DC.W     7545 
  869.     DC.W     7366 
  870.     DC.W     7186 
  871.     DC.W     7005 
  872.     DC.W     6822 
  873.     DC.W     6639 
  874.     DC.W     6455 
  875.     DC.W     6269 
  876.     DC.W     6083 
  877.     DC.W     5896 
  878.     DC.W     5708 
  879.     DC.W     5519 
  880.     DC.W     5329 
  881.     DC.W     5139 
  882.     DC.W     4948 
  883.     DC.W     4756 
  884.     DC.W     4563 
  885.     DC.W     4369 
  886.     DC.W     4175 
  887.     DC.W     3980 
  888.     DC.W     3785 
  889.     DC.W     3589 
  890.     DC.W     3393 
  891.     DC.W     3196 
  892.     DC.W     2998 
  893.     DC.W     2801 
  894.     DC.W     2602 
  895.     DC.W     2404 
  896.     DC.W     2204 
  897.     DC.W     2005 
  898.     DC.W     1805 
  899.     DC.W     1605 
  900.     DC.W     1405 
  901.     DC.W     1205 
  902.     DC.W     1004 
  903.     DC.W     803 
  904.     DC.W     603 
  905.     DC.W     402 
  906.     DC.W     201 
  907.     DC.W    -1 
  908.     DC.W    -202 
  909.     DC.W    -403 
  910.     DC.W    -604 
  911.     DC.W    -804 
  912.     DC.W    -1005 
  913.     DC.W    -1206 
  914.     DC.W    -1406 
  915.     DC.W    -1606 
  916.     DC.W    -1806 
  917.     DC.W    -2006 
  918.     DC.W    -2205 
  919.     DC.W    -2405 
  920.     DC.W    -2603 
  921.     DC.W    -2802 
  922.     DC.W    -2999 
  923.     DC.W    -3197 
  924.     DC.W    -3394 
  925.     DC.W    -3590 
  926.     DC.W    -3786 
  927.     DC.W    -3981 
  928.     DC.W    -4176 
  929.     DC.W    -4370 
  930.     DC.W    -4564 
  931.     DC.W    -4757 
  932.     DC.W    -4949 
  933.     DC.W    -5140 
  934.     DC.W    -5330 
  935.     DC.W    -5520 
  936.     DC.W    -5709 
  937.     DC.W    -5897 
  938.     DC.W    -6084 
  939.     DC.W    -6270 
  940.     DC.W    -6456 
  941.     DC.W    -6640 
  942.     DC.W    -6823 
  943.     DC.W    -7006 
  944.     DC.W    -7187 
  945.     DC.W    -7367 
  946.     DC.W    -7546 
  947.     DC.W    -7724 
  948.     DC.W    -7901 
  949.     DC.W    -8076 
  950.     DC.W    -8250 
  951.     DC.W    -8424 
  952.     DC.W    -8595 
  953.     DC.W    -8766 
  954.     DC.W    -8935 
  955.     DC.W    -9103 
  956.     DC.W    -9269 
  957.     DC.W    -9435 
  958.     DC.W    -9598 
  959.     DC.W    -9760 
  960.     DC.W    -9921 
  961.     DC.W    -10080 
  962.     DC.W    -10238 
  963.     DC.W    -10394 
  964.     DC.W    -10549 
  965.     DC.W    -10702 
  966.     DC.W    -10854 
  967.     DC.W    -11003 
  968.     DC.W    -11151 
  969.     DC.W    -11298 
  970.     DC.W    -11443 
  971.     DC.W    -11586 
  972.     DC.W    -11727 
  973.     DC.W    -11867 
  974.     DC.W    -12004 
  975.     DC.W    -12140 
  976.     DC.W    -12274 
  977.     DC.W    -12407 
  978.     DC.W    -12537 
  979.     DC.W    -12666 
  980.     DC.W    -12792 
  981.     DC.W    -12917 
  982.     DC.W    -13039 
  983.     DC.W    -13160 
  984.     DC.W    -13279 
  985.     DC.W    -13396 
  986.     DC.W    -13511 
  987.     DC.W    -13623 
  988.     DC.W    -13734 
  989.     DC.W    -13843 
  990.     DC.W    -13949 
  991.     DC.W    -14054 
  992.     DC.W    -14156 
  993.     DC.W    -14256 
  994.     DC.W    -14354 
  995.     DC.W    -14450 
  996.     DC.W    -14544 
  997.     DC.W    -14635 
  998.     DC.W    -14724 
  999.     DC.W    -14811 
  1000.     DC.W    -14896 
  1001.     DC.W    -14979 
  1002.     DC.W    -15059 
  1003.     DC.W    -15137 
  1004.     DC.W    -15213 
  1005.     DC.W    -15287 
  1006.     DC.W    -15358 
  1007.     DC.W    -15427 
  1008.     DC.W    -15493 
  1009.     DC.W    -15558 
  1010.     DC.W    -15619 
  1011.     DC.W    -15679 
  1012.     DC.W    -15736 
  1013.     DC.W    -15791 
  1014.     DC.W    -15843 
  1015.     DC.W    -15893 
  1016.     DC.W    -15941 
  1017.     DC.W    -15986 
  1018.     DC.W    -16029 
  1019.     DC.W    -16070 
  1020.     DC.W    -16108 
  1021.     DC.W    -16143 
  1022.     DC.W    -16176 
  1023.     DC.W    -16207 
  1024.     DC.W    -16235 
  1025.     DC.W    -16261 
  1026.     DC.W    -16285 
  1027.     DC.W    -16306 
  1028.     DC.W    -16324 
  1029.     DC.W    -16340 
  1030.     DC.W    -16354 
  1031.     DC.W    -16365 
  1032.     DC.W    -16373 
  1033.     DC.W    -16380 
  1034.     DC.W    -16383 
  1035.     DC.W    -16384 
  1036.     DC.W    -16383 
  1037.     DC.W    -16380 
  1038.     DC.W    -16373 
  1039.     DC.W    -16365 
  1040.     DC.W    -16354 
  1041.     DC.W    -16340 
  1042.     DC.W    -16324 
  1043.     DC.W    -16306 
  1044.     DC.W    -16285 
  1045.     DC.W    -16261 
  1046.     DC.W    -16235 
  1047.     DC.W    -16207 
  1048.     DC.W    -16176 
  1049.     DC.W    -16143 
  1050.     DC.W    -16108 
  1051.     DC.W    -16070 
  1052.     DC.W    -16029 
  1053.     DC.W    -15986 
  1054.     DC.W    -15941 
  1055.     DC.W    -15893 
  1056.     DC.W    -15843 
  1057.     DC.W    -15791 
  1058.     DC.W    -15736 
  1059.     DC.W    -15679 
  1060.     DC.W    -15619 
  1061.     DC.W    -15558 
  1062.     DC.W    -15493 
  1063.     DC.W    -15427 
  1064.     DC.W    -15358 
  1065.     DC.W    -15287 
  1066.     DC.W    -15213 
  1067.     DC.W    -15137 
  1068.     DC.W    -15059 
  1069.     DC.W    -14979 
  1070.     DC.W    -14896 
  1071.     DC.W    -14811 
  1072.     DC.W    -14724 
  1073.     DC.W    -14635 
  1074.     DC.W    -14544 
  1075.     DC.W    -14450 
  1076.     DC.W    -14354 
  1077.     DC.W    -14256 
  1078.     DC.W    -14156 
  1079.     DC.W    -14054 
  1080.     DC.W    -13949 
  1081.     DC.W    -13843 
  1082.     DC.W    -13734 
  1083.     DC.W    -13623 
  1084.     DC.W    -13511 
  1085.     DC.W    -13396 
  1086.     DC.W    -13279 
  1087.     DC.W    -13160 
  1088.     DC.W    -13039 
  1089.     DC.W    -12917 
  1090.     DC.W    -12792 
  1091.     DC.W    -12666 
  1092.     DC.W    -12537 
  1093.     DC.W    -12407 
  1094.     DC.W    -12274 
  1095.     DC.W    -12140 
  1096.     DC.W    -12004 
  1097.     DC.W    -11867 
  1098.     DC.W    -11727 
  1099.     DC.W    -11586 
  1100.     DC.W    -11443 
  1101.     DC.W    -11298 
  1102.     DC.W    -11151 
  1103.     DC.W    -11003 
  1104.     DC.W    -10854 
  1105.     DC.W    -10702 
  1106.     DC.W    -10549 
  1107.     DC.W    -10394 
  1108.     DC.W    -10238 
  1109.     DC.W    -10080 
  1110.     DC.W    -9921 
  1111.     DC.W    -9760 
  1112.     DC.W    -9598 
  1113.     DC.W    -9435 
  1114.     DC.W    -9269 
  1115.     DC.W    -9103 
  1116.     DC.W    -8935 
  1117.     DC.W    -8766 
  1118.     DC.W    -8595 
  1119.     DC.W    -8424 
  1120.     DC.W    -8250 
  1121.     DC.W    -8076 
  1122.     DC.W    -7901 
  1123.     DC.W    -7724 
  1124.     DC.W    -7546 
  1125.     DC.W    -7367 
  1126.     DC.W    -7187 
  1127.     DC.W    -7006 
  1128.     DC.W    -6823 
  1129.     DC.W    -6640 
  1130.     DC.W    -6456 
  1131.     DC.W    -6270 
  1132.     DC.W    -6084 
  1133.     DC.W    -5897 
  1134.     DC.W    -5709 
  1135.     DC.W    -5520 
  1136.     DC.W    -5330 
  1137.     DC.W    -5140 
  1138.     DC.W    -4949 
  1139.     DC.W    -4757 
  1140.     DC.W    -4564 
  1141.     DC.W    -4370 
  1142.     DC.W    -4176 
  1143.     DC.W    -3981 
  1144.     DC.W    -3786 
  1145.     DC.W    -3590 
  1146.     DC.W    -3394 
  1147.     DC.W    -3197 
  1148.     DC.W    -2999 
  1149.     DC.W    -2802 
  1150.     DC.W    -2603 
  1151.     DC.W    -2405 
  1152.     DC.W    -2205 
  1153.     DC.W    -2006 
  1154.     DC.W    -1806 
  1155.     DC.W    -1606 
  1156.     DC.W    -1406 
  1157.     DC.W    -1206 
  1158.     DC.W    -1005 
  1159.     DC.W    -804 
  1160.     DC.W    -604 
  1161.     DC.W    -403 
  1162.     DC.W    -202 
  1163.     DC.W    -1 
  1164.     DC.W     201 
  1165.     DC.W     402 
  1166.     DC.W     603 
  1167.     DC.W     803 
  1168.     DC.W     1004 
  1169.     DC.W     1205 
  1170.     DC.W     1405 
  1171.     DC.W     1605 
  1172.     DC.W     1805 
  1173.     DC.W     2005 
  1174.     DC.W     2204 
  1175.     DC.W     2404 
  1176.     DC.W     2602 
  1177.     DC.W     2801 
  1178.     DC.W     2998 
  1179.     DC.W     3196 
  1180.     DC.W     3393 
  1181.     DC.W     3589 
  1182.     DC.W     3785 
  1183.     DC.W     3980 
  1184.     DC.W     4175 
  1185.     DC.W     4369 
  1186.     DC.W     4563 
  1187.     DC.W     4756 
  1188.     DC.W     4948 
  1189.     DC.W     5139 
  1190.     DC.W     5329 
  1191.     DC.W     5519 
  1192.     DC.W     5708 
  1193.     DC.W     5896 
  1194.     DC.W     6083 
  1195.     DC.W     6269 
  1196.     DC.W     6455 
  1197.     DC.W     6639 
  1198.     DC.W     6822 
  1199.     DC.W     7005 
  1200.     DC.W     7186 
  1201.     DC.W     7366 
  1202.     DC.W     7545 
  1203.     DC.W     7723 
  1204.     DC.W     7900 
  1205.     DC.W     8075 
  1206.     DC.W     8249 
  1207.     DC.W     8423 
  1208.     DC.W     8594 
  1209.     DC.W     8765 
  1210.     DC.W     8934 
  1211.     DC.W     9102 
  1212.     DC.W     9268 
  1213.     DC.W     9434 
  1214.     DC.W     9597 
  1215.     DC.W     9759 
  1216.     DC.W     9920 
  1217.     DC.W     10079 
  1218.     DC.W     10237 
  1219.     DC.W     10393 
  1220.     DC.W     10548 
  1221.     DC.W     10701 
  1222.     DC.W     10853 
  1223.     DC.W     11002 
  1224.     DC.W     11150 
  1225.     DC.W     11297 
  1226.     DC.W     11442 
  1227.     DC.W     11585 
  1228.     DC.W     11726 
  1229.     DC.W     11866 
  1230.     DC.W     12003 
  1231.     DC.W     12139 
  1232.     DC.W     12273 
  1233.     DC.W     12406 
  1234.     DC.W     12536 
  1235.     DC.W     12665 
  1236.     DC.W     12791 
  1237.     DC.W     12916 
  1238.     DC.W     13038 
  1239.     DC.W     13159 
  1240.     DC.W     13278 
  1241.     DC.W     13395 
  1242.     DC.W     13510 
  1243.     DC.W     13622 
  1244.     DC.W     13733 
  1245.     DC.W     13842 
  1246.     DC.W     13948 
  1247.     DC.W     14053 
  1248.     DC.W     14155 
  1249.     DC.W     14255 
  1250.     DC.W     14353 
  1251.     DC.W     14449 
  1252.     DC.W     14543 
  1253.     DC.W     14634 
  1254.     DC.W     14723 
  1255.     DC.W     14810 
  1256.     DC.W     14895 
  1257.     DC.W     14978 
  1258.     DC.W     15058 
  1259.     DC.W     15136 
  1260.     DC.W     15212 
  1261.     DC.W     15286 
  1262.     DC.W     15357 
  1263.     DC.W     15426 
  1264.     DC.W     15492 
  1265.     DC.W     15557 
  1266.     DC.W     15618 
  1267.     DC.W     15678 
  1268.     DC.W     15735 
  1269.     DC.W     15790 
  1270.     DC.W     15842 
  1271.     DC.W     15892 
  1272.     DC.W     15940 
  1273.     DC.W     15985 
  1274.     DC.W     16028 
  1275.     DC.W     16069 
  1276.     DC.W     16107 
  1277.     DC.W     16142 
  1278.     DC.W     16175 
  1279.     DC.W     16206 
  1280.     DC.W     16234 
  1281.     DC.W     16260 
  1282.     DC.W     16284 
  1283.     DC.W     16305 
  1284.     DC.W     16323 
  1285.     DC.W     16339 
  1286.     DC.W     16353 
  1287.     DC.W     16364 
  1288.     DC.W     16372 
  1289.     DC.W     16379 
  1290.     DC.W     16382 
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.